Release 10.1A: OpenEdge Development:
ProDataSets


Setting attributes for individual temp-table parameters

There are three attributes you can use to specify or reduce the amount of schema information marshaled for individual temp-table parameters.

The first attribute lets you specify the amount of schema information to pass when the temp-table is marshaled, as shown:

Syntax
table-handle:SCHEMA-MARSHAL = FULL | MIN | NONE  

Table 2–3 lists the SCHEMA-MARSHAL attribute values.

Table 2–3: SCHEMA-MARSHAL attribute values 
Attribute value
Description
FULL
Includes all schema information for a temp-table parameter.
MIN
Minimizes schema information for a temp-table parameter.
NONE
Excludes schema information for a temp-table parameter.

If set to the Unknown value (?), the default value is FULL.

The second attribute eliminates all schema description from the parameter:

Syntax
table-handle:NO-SCHEMA-MARSHAL = TRUE 

If you set this logical attribute to true on a temp-table, then no schema information is passed when the temp-table is marshaled. This includes index descriptions and field information. The receiving side must have a static definition to receive the temp-table into.

Note: The NO-SCHEMA-MARSHAL attribute is supported only for backward compatibility. Use the SCHEMA-MARSHAL attribute instead. The NO-SCHEMA-MARSHAL attribute corresponds to the SCHEMA-MARSHAL attribute with a value of "NONE".

The third attribute reduces the schema information passed to the minimum needed to validate or establish the temp-table dynamically in the receiving procedure:

Syntax
table-handle:MIN-SCHEMA-MARSHAL = TRUE 

If you set this logical attribute to true on a temp-table, then only minimum schema information is passed along with the data. This includes the field name and data type and extent.

Note: The MIN-SCHEMA-MARSHAL attribute is supported only for backward compatibility. Use the SCHEMA-MARSHAL attribute instead. The MIN-SCHEMA-MARSHAL attribute corresponds to the SCHEMA-MARSHAL attribute with a value of "MIN".

The temp-table ERROR-STRING (a new attribute used by ProDataSets, described in the "Setting and using ERROR, REJECTED, and ERROR-STRING" section) is also passed. Values for other field attributes are passed as the Unknown value (?), so that the protocol for the call remains the same but the amount of data is greatly reduced. No index information is passed. You can use this option even when the receiving procedure has a dynamic parameter (TABLE-HANDLE for a single temp-table or DATASET-HANDLE for a ProDataSet), because the field names, along with the data type and extent, can be used to construct a minimally complete dynamic temp-table on the receiving side without setting all the other field attributes.

If you want to eliminate or minimize temp-table schema information passed as part of a ProDataSet parameter, you must set the SCHEMA-MARSHAL attribute on each temp-table in the ProDataSet. It’s possible you might set it differently for different tables, depending on whether you have static definitions of all the temp-tables on the other side of the call.

Note: If you specify both the SCHEMA-MARSHAL attribute and the NO-SCHEMA-MARSHAL or MIN-SCHEMA-MARSHAL attribute for an individual temp-table, Progress uses the attribute you most recently specified. The NO-SCHEMA-MARSHAL and MIN-SCHEMA-MARSHAL attributes are supported only for backward compatibility. Use the SCHEMA-MARSHAL attribute instead.

Setting any of these temp-table attributes overrides the setting of the Temp-table Schema Marshal (-ttmarshal) startup parameter for an individual temp-table parameter. For more information about these temp-table attributes, see OpenEdge Development: Progress 4GL Reference . For more information about the -ttmarshal startup parameter, see OpenEdge Deployment: Startup Command and Parameter Reference .


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095